LEADTOOLS Medical (Leadtools.Dicom.Scu assembly)
LEAD Technologies, Inc

Create<TData>(DicomScp,TData,BeforeAddTagDelegate) Method

Example 





The type of the data.
The peer connection to send the N-CREATE-REQ to.
The data to send in the N-CREATE-REQ.
The delegate to call before adding Data properties to the dataset that will be used in the N-CREATE-REQ.
Sends an N-CREATE-REQ to the SCP.
Syntax
public void Create<TData>( 
   DicomScp Scp,
   TData Data,
   BeforeAddTagDelegate beforeAdd
)
'Declaration
 
Public Overloads Sub Create(Of TData)( _
   ByVal Scp As DicomScp, _
   ByVal Data As TData, _
   ByVal beforeAdd As BeforeAddTagDelegate _
) 
'Usage
 
Dim instance As PerformedProcedureStepScu
Dim Scp As DicomScp
Dim Data As TData
Dim beforeAdd As BeforeAddTagDelegate
 
instance.Create(Of TData)(Scp, Data, beforeAdd)
public void Create<TData>( 
   DicomScp Scp,
   TData Data,
   BeforeAddTagDelegate beforeAdd
)
 function Leadtools.Dicom.Scu.PerformedProcedureStepScu.Create``1(DicomScp,``0,BeforeAddTagDelegate)( 
   Scp ,
   Data ,
   beforeAdd 
)
public:
void Creategeneric<typename TData>
( 
   DicomScp^ Scp,
   TData^ Data,
   BeforeAddTagDelegate^ beforeAdd
) 

Parameters

Scp
The peer connection to send the N-CREATE-REQ to.
Data
The data to send in the N-CREATE-REQ.
beforeAdd
The delegate to call before adding Data properties to the dataset that will be used in the N-CREATE-REQ.

Type Parameters

TData
The type of the data.
Example
 
Private WorkList As New List(Of ModalityWorklistResult)()


Public Sub BeforeTagTest()
   DicomEngine.Startup()
   DicomNet.Startup()

   Dim query As New ModalityWorklistQuery()
   Dim scp As New DicomScp()
   Dim findMwl As New QueryRetrieveScu()

   scp.AETitle = "MWL_SERVER"
   scp.Port = 104
   scp.Timeout = 60
   scp.PeerAddress = IPAddress.Parse("192.168.0.209")
   findMwl.AETitle = "LEAD_CLIENT"
   findMwl.Find(Of ModalityWorklistQuery, ModalityWorklistResult)(scp, query, AddressOf NewWorklist)

   '
   ' Create a Modality Perform Procedure Step
   If WorkList.Count > 0 Then
      Dim mpps As ModalityPerformedProcedureStep = ModalityPerformedProcedureStep.From(WorkList(0))
      Dim pps As New PerformedProcedureStepScu()

      pps.AETitle = "LEAD_CLIENT"

      '
      ' Initialize required procedure step variables
      '
      mpps.PerformedStationAeTitle = Environment.MachineName
      mpps.PerformedProcedureStepStartDate = DateTime.Now
      mpps.PerformedProcedureStepStartTime = DateTime.Now
      mpps.PerformedSeriesSequence(0).ProtocolName = ModalityPerformedProcedureStep.RandomId(16)
      mpps.PerformedSeriesSequence(0).SeriesInstanceUID = "1.2.3.4.5.890.1232"
      mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1" & DateTime.Now.Ticks.ToString()

      Try
         pps.Create(Of ModalityPerformedProcedureStep)(scp, mpps, New BeforeAddTagDelegate(AddressOf BeforeAddTagDelegate))

         '
         ' Set the procedure step to done
         '
         mpps.PerformedProcedureStepEndDate = DateTime.Now
         mpps.PerformedProcedureStepEndTime = DateTime.Now
         mpps.PerformedProcedureStepStatus = "COMPLETED"
         pps.[Set](Of ModalityPerformedProcedureStep)(scp, mpps, New BeforeAddTagDelegate(AddressOf BeforeAddTagDelegate))
      Catch e As Exception
         Console.WriteLine(e.Message)
      End Try
   End If

   DicomEngine.Shutdown()
   DicomNet.Startup()
End Sub

Private Sub NewWorklist(ByVal result As ModalityWorklistResult, ByVal ds As DicomDataSet)
   WorkList.Add(result)
End Sub

Private Function BeforeAddTagDelegate(ByVal parent As LinkedList(Of Long), ByVal data As Object, ByVal tag As Long) As Boolean
   Dim dcmTag As DicomTag = DicomTagTable.Instance.Find(tag)

   If dcmTag IsNot Nothing Then
      Console.WriteLine("Tag: " & dcmTag.Name)
   Else
      Console.WriteLine(String.Format("Tag: {0:x4}:{1:x4}", DicomExtensions.GetGroup(tag), DicomExtensions.GetElement(tag)))
   End If

   Return True
End Function
List<ModalityWorklistResult> WorkList = new List<ModalityWorklistResult>();


public void BeforeTagTest()
{
    DicomEngine.Startup();
    DicomNet.Startup();

    ModalityWorklistQuery query = new ModalityWorklistQuery();
    DicomScp scp = new DicomScp();
    QueryRetrieveScu findMwl = new QueryRetrieveScu();

    scp.AETitle = "MWL_SERVER";
    scp.Port = 104;
    scp.Timeout = 60;
    scp.PeerAddress = IPAddress.Parse("192.168.0.209");
    findMwl.AETitle = "LEAD_CLIENT";
    findMwl.Find<ModalityWorklistQuery, ModalityWorklistResult>(scp, query, NewWorklist);

    //
    // Create a Modality Perform Procedure Step
    if (WorkList.Count > 0)
    {
        ModalityPerformedProcedureStep mpps = ModalityPerformedProcedureStep.From(WorkList[0]);
        PerformedProcedureStepScu pps = new PerformedProcedureStepScu();

        pps.AETitle = "LEAD_CLIENT";               

        //
        // Initialize required procedure step variables
        //

        mpps.PerformedStationAeTitle = Environment.MachineName;
        mpps.PerformedProcedureStepStartDate = DateTime.Now;
        mpps.PerformedProcedureStepStartTime = DateTime.Now;
        mpps.PerformedSeriesSequence[0].ProtocolName = ModalityPerformedProcedureStep.RandomId(16);
        mpps.PerformedSeriesSequence[0].SeriesInstanceUID = "1.2.3.4.5.890.1232";
        mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1" + DateTime.Now.Ticks.ToString();

        try
        {
            pps.Create<ModalityPerformedProcedureStep>(scp, mpps,new BeforeAddTagDelegate(BeforeAddTagDelegate));

            //
            // Set the procedure step to done
            //

            mpps.PerformedProcedureStepEndDate = DateTime.Now;
            mpps.PerformedProcedureStepEndTime = DateTime.Now;
            mpps.PerformedProcedureStepStatus = "COMPLETED";
            pps.Set<ModalityPerformedProcedureStep>(scp, mpps, new BeforeAddTagDelegate(BeforeAddTagDelegate));
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }

    DicomEngine.Shutdown();
    DicomNet.Startup();
}

private void NewWorklist(ModalityWorklistResult result, DicomDataSet ds)
{
    WorkList.Add(result);
}

private bool BeforeAddTagDelegate(LinkedList<long> parent, object data, long tag)
{
    DicomTag dcmTag = DicomTagTable.Instance.Find(tag);

    if (dcmTag != null)
    {
        Console.WriteLine("Tag: " + dcmTag.Name);
    }
    else
        Console.WriteLine(string.Format("Tag: {0:x4}:{1:x4}", DicomExtensions.GetGroup(tag), DicomExtensions.GetElement(tag)));

    return true;
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

PerformedProcedureStepScu Class
PerformedProcedureStepScu Members
Overload List

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Dicom.Scu requires a Medical toolkit license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features